package com.tfjybj.itoo.exam.provider.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dmsdbj.itoo.tool.redis.CacheExpire;
import com.tfjybj.itoo.exam.entity.AccountItemEntity;
import com.tfjybj.itoo.exam.model.AccountItemModel;
import org.apache.ibatis.annotations.Param;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * AccountItemDao接口
 * accountItem表
 *
 * @author 任晓帅
 * @version 2.0.0
 * @since 2.0.0 2018-11-15 19:40:28
 */
@Repository("accountItemDao")
public interface AccountItemDao extends BaseMapper<AccountItemEntity> {
	
	//region 模板生成：模糊查询
	/**
     * 根据名称模糊查询accountItem
     *
     * @param name  名称
     * @return 模糊查询的accountItem集合
     * @author 任晓帅
     * @since 2.0.0 2018-11-15 19:40:28
     */
    List<AccountItemEntity> queryLikeName(@Param("name") String name);
	//endregion

    /* **********************************以下为非模板生成的内容********************************* */

    /**
     * 根据会计科目查询pid
     * @param name 名称
     * @return  会计科目的AccountItemModel集合
     * @author 杨楠
     * @since 2.0.0 2018年11月13日16:10:37
     */

    @Cacheable(value = "queryAccountingSubjectByName",unless = "#result == null || #result.size()==0")
    @CacheExpire(expire = 600)
    List<AccountItemModel> queryAccountingSubjectByName(String name);
    /**
     * 查询会计科目
     * @param id 会计科目id
     * @return  会计科目的AccountItemModel集合
     * @author 杨楠
     * @since 2.0.0 2018年11月13日16:10:37
     */
    @Cacheable(value = "queryAccountingSubjectByPid",unless = "#result == null || #result.size()==0")
    @CacheExpire(expire = 600)
    List<AccountItemModel> queryAccountingSubjectByPid(String id);


    List<AccountItemEntity> queryTreeModel();
}
